﻿﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

using MySql.Data.MySqlClient;
using System.Data;

namespace TrabalhoLAP.Model.Class
{
    public class AcessoBanco
    {
        string gvServer = "localhost";
        string gvDatabase = "TrabalhoLAP";
        string gvUser = "root";
        string gvPassword = "root";

        private MySqlConnection gvConn = null;
        private MySqlDataAdapter gvAdapter = null;
        private DataSet gvDataSet = null;

        public bool abreConecao()
        {

            string sqlconnection = null;

            //Monta os parametros da coneção
            sqlconnection = "Persist Security Info=False;";
            sqlconnection += "server=" + gvServer + ";";
            sqlconnection += "database=" + gvDatabase + ";";
            sqlconnection += "uid=" + gvUser + ";";
            sqlconnection += "password=" + gvPassword + ";";

            //Cria a coneção com o banco de dados
            gvConn = new MySqlConnection(sqlconnection);

            if (gvConn == null)
            {
                return false;
            }
            else
            {
                // Abre a conexão
                gvConn.Open();
                gvDataSet = new DataSet();
                return true;
            }
        }

        public void fechaConexao()
        {
            gvConn.Close();
        }

        public bool executeQuery(string sql)
        {
            if (abreConecao())
            {
                //Query SQL
                MySqlCommand sqlCommand = new MySqlCommand(sql, gvConn);

                try
                {
                    //Executa a Query SQL
                    sqlCommand.ExecuteNonQuery();
                }
                catch (Exception e)
                {
                    return false;
                }

                //Fecha conexão com o banco de dados
                fechaConexao();

                return true;
            }
            else
            {
                return false;
            }
        }

        public DataSet executeSelectQuery(string sql)
        {
            if (abreConecao())
            {
                //cria um adapter utilizando a instrução SQL para aceder à tabela
                gvAdapter = new MySqlDataAdapter(sql, gvConn);

                try
                {
                    //Preenche o dataset através do adapter
                    gvAdapter.Fill(gvDataSet);

                    //Retorna os dados obtidos
                    return gvDataSet;
                }
                catch (Exception e)
                {
                    //Retorna os dados obtidos
                    return null;
                }
            }
            else
            {
                gvDataSet = null;
                return gvDataSet;
            }
        }
    }
}